org 0x7c00
[bits 16]
xor ax, ax ; eax = 0
; 初始化段寄存器, 段地址全部设为0
mov ds, ax
mov ss, ax
mov es, ax
mov fs, ax
mov gs, ax

; 初始化栈指针
mov sp, 0x7c00
mov bx, 0x7e00
mov ch, 0  ; cylinder
mov dh, 0 ; head
mov cl, 2 ; sector, 因为mbr占用了第一个扇区，所以bootloader.asm的第一个扇区是第二个扇区

loop:
    mov ah, 02h	; 读取硬盘
    mov al, 1	; 一次读一个
    mov dl, 0x80	;驱动器号
    int 13h
    add bx, 512  ; bs : 地址， 读完一个扇区，bx指向下一个扇区
    inc cl
    cmp cl, 6 ; 读取6个扇区, 假定bootloader.asm占用5个扇区, 2~6
    jle loop

jmp 0x0000:0x7e00 
times 510 - ($ - $$) db 0
db 0x55, 0xaa